﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Retete.Models;

namespace Retete.ViewModels
{
    public class ReteteViewModel
    {
        public Reteta Reteta { get; set; }
        public List<RetetaProdus> Produse { get; set; }

        public string RetetaNouaNume { get; set; }
        public string RetetaNouaCod { get; set; }
        public decimal RetetaNouaPret { get; set; }
        public int RetetaNouaMultiplicator { get; set; }
        public string RetetaNouaCategorie { get; set; }
        public string RetetaNouaCantitate { get; set; }

        public int ProdusNouID { get; set; }
        public int ProdusNouCod { get; set; }
        public string ProdusNouNume { get; set; }
        public decimal ProdusNouCantitate { get; set; }
        public int IDProdusSters { get; set; }
        public bool ClonareReteta { get; set; }
        public bool TiparireReteta { get; set; }

        public bool FocusProdusNou { get; set; }
        public string CodUltimaReteta { get; set; }
        public bool RecalculareTotal { get; set; }

        public decimal AdaosComercial { get; set; }
        public decimal PretAmbalaj { get; set; }

        public decimal TotalValoareCumparare
        {
            get
            {
                if (Produse != null) return Produse.Sum(element => element.ValoareCumparare);
                else return 0;
            }
        }
        public decimal TotalCostCumpararePortie
        {
            get
            {
                if (Produse != null) return Produse.Sum(element => element.CostCumpararePortie);
                else return 0;
            }
        }
        public decimal TotalValoareCumparareCuTVA
        {
            get
            {
                if (Produse != null) return Produse.Sum(element => element.ValoareCumparareCuTVA);
                else return 0;
            }
        }
        public decimal TotalCostCumpararePortieCuTVA
        {
            get
            {
                if (Produse != null) return Produse.Sum(element => element.CostCumpararePortieCuTVA);
                else return 0;
            }
        }
        public decimal TotalCostCuAdaos
        {
            get { return TotalCostCumpararePortie * AdaosComercial + PretAmbalaj; }
        }
        
        public ReteteViewModel(Reteta setReteta)
        {
            Reteta = setReteta;
            Produse = setReteta.Produse.ToList();
            IDProdusSters = -1;
            AdaosComercial = 3;
            PretAmbalaj = (decimal)0.36;
        }
        public ReteteViewModel() 
        {
            IDProdusSters = -1;
            AdaosComercial = 3;
            PretAmbalaj = (decimal)0.36;
        }
    }
}